package com.ruslan.magaz.service;

import java.util.List;

import com.ruslan.magaz.domain.Address;
import com.ruslan.magaz.domain.Customer;
import com.ruslan.magaz.domain.Role;
import com.ruslan.magaz.domain.User;

public interface UserService {
	User login(String login, String password);
	void addUser(User user);
	void removeUser (User user);
	void editUser(User user);
	User getUserById(int id);
	List<User> getUserByName(String name);
	List<User> getUserByEmail(String email);
	List<User> getAllUsers();
	Integer getFirstUserId();
	List<User> getAllUsersNotAdmin();
	void addRole(Role role);
	void removeRole (Role role);
	void editRole(Role role);
	Role getRoleById(int id);
	List<Role> getAllRoles();
	void addCustomer(int userId, Customer customer);
	void removeCustomer (Customer customer);
	void editCustomer(Customer customer);
	Customer getCustomerById(int id);
	List<Customer> getAllCustomers();
	void addAddress(int userId, Address address);
	void removeAddress (Address address);
	void editAddress(Address address);
	Address getAddressById(int id);
//	List<Address> getAllAddresses();
	List<Address> getAllAddressesForUser(int userId);
	void updateDiscount(Customer customer);
	Address shippingAddressForCustomer(Customer customer);
	void favAddress(int userId, Address address);
}
